package main

import (
	"fmt"
	"os"
	"strconv"
	"todo-list/src"
)

func main() {
	if len(os.Args) == 1 {
		fmt.Println("todo-list:")
		src.Todo.FuncShowTodoList()
	} else if os.Args[1] == "add" {
		funcadd()
		fmt.Println("todo-list:")
		src.Todo.FuncShowTodoList()
	} else if os.Args[1] == "do" {
		funcdo()
		fmt.Println("todo-list:")
		src.Todo.FuncShowTodoList()
	} else if os.Args[1] == "del" {
		funcdeldo()
		fmt.Println("todo-list:")
		src.Todo.FuncShowTodoList()
	} else if os.Args[1] == "deldown" {
		funcdeldown()
	} else if os.Args[1] == "down" {
		src.Todo.FuncShowHaddoList()
		fmt.Println("todo-list:")
		src.Todo.FuncShowTodoList()
	} else {
		funcshowhelp()
	}
}

func funcshowhelp() {
	fmt.Println("todo add ........... 添加一条")
	fmt.Println("todo do  ........... 执行一条")
	fmt.Println("todo del ........... 删除一条")
	fmt.Println("todo deldown ....... 删除一条已完成")
	fmt.Println("todo down .......... 列出已完成")
	fmt.Println("todo  .............. 列出未完成")

}

// funcadd 添加一个todo
func funcadd() {
	if len(os.Args) > 5 {
		fmt.Println("输入参数过长,参数列表为:--事件--开始时间--截止时间--")
		os.Exit(1)
	}

	var inputlist [3]string
	for id, data := range os.Args[2:] {
		inputlist[id] = data
	}

	src.Todo.FuncAddanToDo(inputlist[0], inputlist[1], inputlist[2])

}

//funcdo 完成某件事
func funcdo() {

	if len(os.Args) != 3 {
		fmt.Println("输入参数错误,参数列表为:id(int)")
		os.Exit(1)
	}
	id, err := strconv.Atoi(os.Args[2])
	if err != nil {
		fmt.Println("无法将输入ID转换为int")
		os.Exit(1)
	}
	src.Todo.FuncMoveNeedDotoHadDo(id)

}

//funcdeldo 删除一条需要做的列表
func funcdeldo() {
	if len(os.Args) != 3 {
		fmt.Println("输入参数错误,参数列表为:id(int)")
		os.Exit(1)
	}
	id, err := strconv.Atoi(os.Args[2])
	if err != nil {
		fmt.Println("无法将输入ID转换为int")
		os.Exit(1)
	}
	src.Todo.FuncDelanTodoList(id)
}

//funcdeldo 删除一条需要做的列表
func funcdeldown() {
	if len(os.Args) != 3 {
		fmt.Println("输入参数错误,参数列表为:id(int)")
		os.Exit(1)
	}
	id, err := strconv.Atoi(os.Args[2])
	if err != nil {
		fmt.Println("无法将输入ID转换为int")
		os.Exit(1)
	}
	src.Todo.FuncDelanHaddoList(id)
}
